function [RecoveredDataTraining, RecoveredTrueLabelTraining] = Ddavid_remove_no_label_training(AllDataTraining, TrueLabelTraining)

% [RecoveredDataTraining, RecoveredTrueLabelTraining] = Ddavid_remove_no_label_training(AllDataTraining, TrueLabelTraining)
%
% <Input>
% AllDataTraining: [n*m], n is the number of training instances, m is the
%                         number of features
% TrueLabelTraining: [n*k], the value is {-1, 1}, the answer of labels, k
%                           is the number of labels
%
% <Output>
% RecoveredDataTraining: [n'*m], n' is the the number of training instances
%                                which are assigned labels
% RecoveredTrueLabelTraining: [n'*k], the value is {-1, 1}, the answer of
%                                     labels

SumLabel = sum((TrueLabelTraining == 1), 2);
RecoveredDataTraining = AllDataTraining(SumLabel > 0, :);
RecoveredTrueLabelTraining = TrueLabelTraining(SumLabel > 0, :);
